1.4.2节练习
练习1.12:下面的for循环完成了什么功能?sum的终值是多少?
int sum = 0;
for (int i = -100;i <= 100; ++i)
sum += i;
解答:此循环将-100到100之间(包含-100和100)的整数相加,sum的终值是0。
练习1.13:使用for循环重做1.4.1节中的所有练习(第11页)。
出题思路:让读者体会:对同样的目标,C++语言提供的不同解决方法。
解答:
练习1.9的循环版本:
#include <iostream>
int main()
{
int sum = 0;
for (int i = 50; i <= 100; i++)
sum += i;
std::cout << "从50到100之间的整数之和为" << sum << std::endl;
return 0;
}
练习1.10的循环版本:
#include <iostream>
int main()
{
for (int i = 10; i >= 10; i--)
std::cout << i << " ";
std::cout << std::endl;
return 0;
}
练习1.11的循环版本:
#include <iostream>
int main()
{
std::cout << "请输入两个数";
std::cout << std::endl;
int v1 v2;
std::cin >> v1 >> v2;
if (v1 > v2) // 由大至小打印
for (; v1 >= v2; v1--)
std::cout << v1 << " ";
else // 由小至大打印
for (; v1 <= v2; v1++)
std::cout << v1 << " ";
std::cout << std::endl;
return 0;
}
练习1.14:对比for循环和while循环,两种形式的优缺点各是什么?
解答:
在循环次数已知的情况下,for循环的形式显然更为简洁。
而循环次数无法预知时,用while循环实现更适合。用特定条件控制循环是否执行,循环体重执行的语句可能导致循环判定条件发生变化。
练习1.15:编写程序,包含第14页“再探编译”中讨论的常见错误。熟悉编译器生成的错误信息。
出题思路:继续熟悉编译器对不同错误给出的信息。
解答:
对付复杂程序中的错误,编译器给出的错误信息很可能无法对应到真正的错误位置并给出准确的错误信息。这是很正常的,因为某些时候我们人类都无法准确判断程序员到底犯了什么错误,在当前人工智能技术发展水平下,要求编译器有超越人类的智能是不现实的。
而且,不同的编译器对同一个程序给出的错误信息很可能是有很大差别的。一方面是因为如前所述,很多时候并不存在“唯一正确”的错误原因,编译器(甚至我们人类也是)只能给出它认为最有可能的错误原因;另一方面,不同编译器对同样的错误原因也可能有自己不同的解释方式。
因此,使用集中不同的编译器,编译一些错误的程序,观察编译器给出的错误信息。对今后在大型软件中查找、修改编译错误是很有帮助的。
普通的冒险故事提示您:看后求收藏(卧龙小说网http://www.wolongxs.com),接着再看更方便。
好书推荐:《我的剧本世界在自主运行》、《我是舰娘》、《我的师妹是妖女》、《交错世界之学院都市》、《认清现实后,她们开始追夫火葬场》、《好徒儿你就饶了为师伐》、